home *** CD-ROM | disk | FTP | other *** search
/ Amiga CD-ROM Collection / Amiga CD-ROM Collection - Auge 4000 and Cactus and Demo Util.iso / cactus / 01 / basicprg's / boersenspiel < prev    next >
Text File  |  1988-04-30  |  10KB  |  422 lines

  1. REM ***********************************
  2. REM * Das Boersenspiel von F.Weichert *  dieses Prg. ist Public-Domain
  3. REM ***********************************
  4. REM          Falls Dir das Prg. gut gefaellt ueberweise 5,-DM an
  5. REM          Friedhelm Weichert
  6. REM          Kontonummer: 482125   Bankleitzahl: 31251350
  7. REM                     Kreissparkasse Grevenbroich
  8.  
  9.  Spielbeginn:
  10.   CLS
  11.   CLEAR
  12.  
  13.  DIM tendenz(10),wert(10),aktie$(10),besitz(4),besitzaktien(4,10)
  14.  
  15.  FOR i=1 TO 10
  16.  READ aktie$(i)
  17.  wert(i)=100
  18.  NEXT i
  19.  
  20.  DATA Bayer,Daimler,VW,Siemens,Thyssen,Henkel,Hoechst,Kaufhof,Veba,BASF
  21.  
  22.  FOR i= 1 TO 4
  23.  besitz(i)=50000&
  24.  NEXT i
  25.  
  26.  PRINT "********************"
  27.  PRINT "* Das Boersenspiel *"
  28.  PRINT "********************"
  29.  PRINT "        von"
  30.  PRINT " Friedhelm Weichert"
  31.  PRINT
  32.  PRINT "Ziel des Spiel ist es sein Kapital zu verzehnfachen."
  33.  PRINT
  34.  INPUT "Wieviele Mitspieler (max.4)";ms
  35.  PRINT
  36.  
  37.  FOR i= 1 TO ms
  38.      PRINT "Name des ";i;". Spielers ";
  39.      INPUT spieler$(i)
  40.  NEXT i
  41.  
  42.  Naechstertag:
  43.  schleifenmerker=1
  44.  RANDOMIZE TIMER
  45.  FOR j=1 TO 10
  46.  tendenz(j)=INT(RND*40) 
  47.  wert(j)=wert(j)+tendenz(j)-20
  48.  IF wert(j) <= 9 THEN wert(j)=9
  49.  NEXT j
  50.  tag=tag+1
  51.  CLS
  52.  PRINT TAB(30);"********************"
  53.  PRINT TAB(30);"* ";
  54.  PRINT USING "###";tag;
  55.  PRINT ". Boersentag  *"
  56.  PRINT TAB(30);"********************"
  57.  GOSUB WarteTaste
  58.  
  59.  
  60.  
  61.  Start:
  62.  FOR i= schleifenmerker TO ms
  63.  BeginnAuswahl:
  64.      CLS
  65.      
  66.      PRINT 
  67.      GOSUB Uebersicht
  68.      PRINT
  69.      PRINT "Was moechtest Du?                    1 = Kaufen"
  70.      PRINT "                                     2 = Verkaufen"
  71.      PRINT "                                     3 = Warten"
  72.      PRINT "                                     4 = Bilanz"
  73.      
  74.      
  75.      Warte:
  76.      a$=INKEY$
  77.      IF a$="" OR a$>"4" OR a$<"1" THEN Warte
  78.      ON VAL(a$) GOSUB Kaufen,Verkaufen,Warten,Bilanz
  79.      IF merker=1 THEN
  80.      merker=0
  81.      GOTO BeginnAuswahl
  82.      END IF
  83.      
  84.      
  85.      GOSUB Ereignis
  86.      IF besitz(i) > 500000& THEN Sieg
  87.      IF besitz(i) < 0 THEN 
  88.        CLS
  89.        PRINT "Du hast Schulden !!!"
  90.        schuldmerker(i)=schuldmerker(i)+1
  91.        IF schuldmerker(i)=4 THEN
  92.           GOSUB Bankrott
  93.           GOSUB WarteTaste
  94.           schleifenmerker=i
  95.           GOTO Start
  96.        END IF   
  97.        PRINT "Versuche Deine Schulden durch erfolgreichere Spekulationen zu"
  98.        PRINT "egalisieren. Dafuer hast Du noch ";4-schuldmerker(i);
  99.        IF schuldmerker(i) < 3 THEN
  100.           PRINT " Tage Zeit."
  101.           GOTO weiterschuld
  102.        END IF
  103.        PRINT " Tag Zeit."
  104.        weiterschuld:
  105.        GOSUB WarteTaste
  106.      END IF
  107.      IF besitz(i) >= 0 THEN schuldmerker(i)=0
  108.      
  109.  NEXT i
  110.  GOTO Naechstertag
  111.  
  112.  Uebersicht:
  113.  PRINT "Kapital von Spieler ";spieler$(i);":";besitz(i);" DM"
  114.  PRINT
  115.  PRINT "*******************************************************"
  116.  PRINT "*                                                     *"
  117.  FOR j = 1 TO 10
  118.     IF j=10 THEN 
  119.         PRINT "*    (";j;")    ";aktie$(j);
  120.         GOTO sprungende
  121.     END IF    
  122.     PRINT "*    ( ";j;")    ";aktie$(j);
  123.     
  124.     sprungende:
  125.     IF wert(j) < 100 THEN 
  126.        PRINT TAB(31);
  127.     END IF
  128.     IF wert(j) < 10 THEN
  129.        PRINT TAB(32);
  130.     END IF
  131.     IF wert(j) > 99 THEN
  132.        PRINT TAB(30);
  133.     END IF
  134.     PRINT wert(j);" DM";TAB(55);"*"   
  135.     
  136.     NEXT j
  137.  PRINT "*                                                     *"
  138.  PRINT "*******************************************************"
  139.  RETURN
  140.  
  141.  
  142.  Kaufen:
  143.  AnfangKaufen:
  144.  CLS
  145.  PRINT "Welche Aktie moechtest Du kaufen?(1-10) 0 = Keine Kaufen"
  146.  PRINT
  147.  
  148.  GOSUB Uebersicht
  149.  
  150.  Eingabewelcheaktie:
  151.  INPUT welcheaktie
  152.  IF welcheaktie < 0 OR welcheaktie > 10 THEN GOTO Eingabewelcheaktie
  153.  IF welcheaktie=0 THEN
  154.    merker=1
  155.    RETURN
  156.  END IF
  157.  
  158.  PRINT "Wieviele Aktien moechtest Du von ";aktie$(welcheaktie);" erwerben";
  159.  INPUT wievieleaktien
  160.  
  161.  IF wievieleaktien * wert(welcheaktie) > besitz(i) THEN
  162.     PRINT "Tut mir leid, soviel Geld hast Du nicht mehr."
  163.     GOSUB WarteTaste
  164.     GOTO AnfangKaufen
  165.  END IF
  166.  
  167.  PRINT "OK!"
  168.  besitzaktie(i,welcheaktie)=besitzaktie(i,welcheaktie)+wievieleaktien
  169.  besitz(i)=besitz(i)-wievieleaktien*wert(welcheaktie)
  170.  PRINT "Dein Kapital betraegt nun nur noch ";besitz(i);"DM"
  171.  PRINT 
  172.  PRINT
  173.  WarteTaste:
  174.  PRINT
  175.  PRINT TAB(20);"Druecke eine Taste zum weitermachen"
  176.  Warte1:
  177.  a$=INKEY$
  178.  IF a$="" THEN Warte1
  179.  
  180.  RETURN
  181.  
  182.  Verkaufen:
  183.  AnfangVerkaufen:
  184.  CLS
  185.  PRINT "Welche Aktie moechtest Du verkaufen? (1-10) 0 = Keine verkaufen"
  186.  PRINT "                                           99 = Notverkauf"
  187.  GOSUB Uebersicht
  188.  INPUT welcheaktie
  189.  IF welcheaktie = 99 THEN
  190.     FOR j = 1 TO 10
  191.     IF besitzaktie(i,j) > 0 THEN
  192.        gesamtbesitz(i)=gesamtbesitz(i)+besitzaktie(i,j)*wert(j)
  193.        besitzaktie(i,j)=0
  194.     END IF
  195.     NEXT j
  196.     besitz(i)=besitz(i)+gesamtbesitz(i)
  197.     gesamtbesitz(i)=0
  198.     CLS
  199.     PRINT "OK! Du hast alle deine Aktien verkauft."
  200.     PRINT "Dein Barvermoegen betraegt nun ";besitz(i);" DM."
  201.     PRINT
  202.     GOSUB WarteTaste 
  203.     RETURN
  204.  END IF      
  205.     
  206.  IF welcheaktie = 0 THEN 
  207.    merker=1
  208.    RETURN
  209.  END IF
  210.  PRINT "Du besitzt von ";aktie$(welcheaktie);besitzaktie(i,welcheaktie);" Aktien."
  211.  INPUT "Wieviele Aktien moechtest Du verkaufen";wievieleaktien
  212.  
  213.  IF wievieleaktien > besitzaktie(i,welcheaktie) THEN
  214.     PRINT "Tut mir leid, soviele Aktien befinden sich nicht in Deinem Besitz"
  215.     GOSUB WarteTaste
  216.     GOTO AnfangVerkaufen
  217.  END IF
  218.  
  219.  PRINT "OK!"
  220.  besitz(i)=besitz(i)+wievieleaktien*wert(welcheaktie)
  221.  besitzaktie(i,welcheaktie)=besitzaktie(i,welcheaktie)-wievieleaktien
  222.  PRINT
  223.  PRINT "Du hast jetzt noch ";besitz(i);" DM"
  224.  GOSUB WarteTaste
  225.  RETURN
  226.  
  227.  Warten:
  228.  RETURN
  229.  
  230.  Bilanz:
  231.  CLS
  232.  merker=1
  233.  PRINT
  234.  PRINT
  235.  PRINT "**********"
  236.  PRINT "* Bilanz *"
  237.  PRINT "**********"
  238.  PRINT "fuer Spieler ";spieler$(i)
  239.  PRINT
  240.  FOR j = 1 TO 10
  241.  IF besitzaktie(i,j) > 0 THEN
  242.  PRINT TAB(10);aktie$(j);TAB(25);
  243.  PRINT USING "#####";besitzaktie(i,j);
  244.  PRINT TAB(31);"X";TAB(35);
  245.  PRINT USING "###";wert(j);
  246.  PRINT " DM";TAB(45);"=";TAB(50);
  247.  PRINT USING "######";besitzaktie(i,j)*wert(j);
  248.  PRINT " DM"
  249.  gesamtbesitz(i)=gesamtbesitz(i)+besitzaktie(i,j)*wert(j)
  250.  END IF
  251.  NEXT j
  252.  gesamtbesitz(i)=gesamtbesitz(i)+besitz(i)
  253.  PRINT TAB(49);"-----------"
  254.  PRINT TAB(20);"+";TAB(22);
  255.  PRINT USING "######";besitz(i);
  256.  PRINT " DM Bargeld";
  257.  
  258.  PRINT TAB(50);
  259.  PRINT USING "######";gesamtbesitz(i);
  260.  PRINT " DM     Gesamt"
  261.  gesamtbesitz(i)=0
  262.  PRINT
  263.  PRINT 
  264.  GOSUB WarteTaste
  265.  RETURN
  266.  
  267.  Bankrott:
  268.  schuldmerker(i)=0
  269.  CLS
  270.  PRINT "Du bist Bankrott!"
  271.  PRINT "Du konntest Deine Schulden nicht innerhalb der gesetzten Frist"
  272.  PRINT "tilgen. Damit ist das Spiel fuer Dich beendet."
  273.  ms=ms-1
  274.  IF ms=0 THEN Spielende
  275.  FOR ii=i TO ms
  276.  spieler$(ii)=spieler$(ii+1)
  277.  besitz(ii)=besitz(ii+1)
  278.  FOR j= 1 TO 10
  279.  IF besitzaktie(ii+1,j) > 0 THEN
  280.     besitzaktie(ii,j)=besitzaktie(ii+1,j)
  281.  END IF
  282.  NEXT j
  283.  NEXT ii
  284.  RETURN
  285.  
  286.  Sieg:
  287.  CLS
  288.  PRINT TAB(22);"*******************************"
  289.  PRINT TAB(22);"* Herzlichen Glueckwunsch !!! *"
  290.  PRINT TAB(22);"*******************************"
  291.  PRINT
  292.  PRINT "Du hast es geschafft dein Kapital zu verzehnfachen."
  293.  PRINT "Spieler ";spieler$(i);" erreichte ";besitz(i);" DM."
  294.  PRINT
  295.  Nochmal:
  296.  INPUT "Noch ein Spiel (J/N)";Nochmal$
  297.  IF Nochmal$="j" OR Nochmal$="J" THEN Spielbeginn
  298.  END
  299.  
  300.  Spielende:
  301.  GOSUB WarteTaste
  302.  CLS
  303.  PRINT "Damit ist das Spiel beendet."
  304.  GOTO Nochmal
  305.  
  306.  
  307.     
  308.  
  309.  Ereignis:
  310.  
  311.  CLS
  312.  RANDOMIZE TIMER
  313.  x=INT(RND*(50+1))
  314.  
  315.     
  316.  IF x=1 THEN
  317.  PRINT "Du hast Steuern hinterzogen !!!"
  318.  PRINT "Das Finanzamt ist Dir auf die Schliche gekommen..."
  319.  Zufall1:
  320.  RANDOMIZE TIMER
  321.  x1=INT(RND*1000)
  322.  x1=x1*10
  323.  IF x1 > besitz(i) THEN Zufall1
  324.  PRINT 
  325.  PRINT "Dieses Unterfangen kostet ";x1;" DM an Nachzahlungen."
  326.  besitz(i)=besitz(i)-x1
  327.  PRINT "Jetzt besitzt Du nur noch ";besitz(i);" DM Bargeld."
  328.  END IF
  329.      
  330.  IF x=2 THEN
  331.  PRINT "Dividendenauszahlung !!!"
  332.  PRINT "Du bekommst auf den Wert Deiner Aktien 7% ausgezahlt."
  333.  FOR j = 1 TO 10
  334.  IF besitzaktie(i,j) > 0 THEN
  335.     merker1=1
  336.     gesamtbesitz(i)=gesamtbesitz(i)+besitzaktie(i,j)*wert(j)
  337.  END IF
  338.  NEXT j
  339.  IF merker1=0 THEN RETURN
  340.  IF merker1=1 THEN merker1=0
  341.  gesamtbesitz(i)=gesamtbesitz(i)+CINT(gesamtbesitz(i)*.07)
  342.  PRINT "Das sind in Deinem Fall ";CINT(gesamtbesitz(i)*.07);" DM."
  343.  besitz(i)=besitz(i)+gesamtbesitz(i)
  344.  gesamtbesitz(i)=0
  345.  PRINT "Bar auf die Kralle kannst Du jetzt ";besitz(i);" Dein Eigen nennen."
  346.  END IF
  347.     
  348.  IF x=3 THEN
  349.  PRINT "Du findest auf der Strasse eine Brieftasche mit 2000 DM."
  350.  besitz(i)=besitz(i)+2000
  351.  END IF
  352.  
  353.  IF x=4 THEN
  354.  PRINT "Pech gehabt!!! Der Blitz schlug in Dein Haus ein."
  355.  PRINT "Die Reperaturarbeiten belangen sich auf 5000 DM."
  356.  besitz(i)=besitz(i)-5000
  357.  END IF
  358.  
  359.  IF x=5 THEN
  360.  PRINT "Lohnsteuerjahresausgleich."
  361.  RANDOMIZE TIMER
  362.  x1=INT(RND*(1000))
  363.  x1=x1*10
  364.  x1=x1-5000
  365.  IF x1 < 0 THEN
  366.     x1=-x1
  367.     PRINT "Leider musst Du ";x1;" DM nachzahlen."
  368.     besitz(i)= besitz(i)-x1
  369.     x1=-x1
  370.  END IF
  371.  IF x1 > 0 THEN
  372.     PRINT "Du bekommst ";x1;" DM Nachzahlung."
  373.     besitz(i)=besitz(i)+x1
  374.  END IF
  375.  IF x1 = 0 THEN PRINT "Leider nichts bei rumgekommen..."
  376.  END IF
  377.   
  378.  IF x=6 THEN
  379.  PRINT "Herzliches Beileid!"
  380.  PRINT "Deine Frau ist bei einem Verkehrunfall ums Leben gekommen."
  381.  PRINT "Du kassierst die Lebensversicherung in Hoehe von 100.000 DM !"
  382.  besitz(i)=besitz(i)+100000&
  383.  END IF
  384.  
  385.  IF x=7 THEN
  386.  PRINT "Deine Kinder zerstoeren beim Fussballspielen die Scheibe eines"
  387.  PRINT "Moebelgeschaefts. Du bist nicht Haftpflichtversichert.
  388.  PRINT "Der Schaden belaeuft sich auf 2500 DM."
  389.  besitz(i)=besitz(i)-2500
  390.  END IF
  391.  
  392.  IF x=8 THEN
  393.  PRINT "Wieder mal Pech gehabt..."
  394.  PRINT "Ein Firmenwagen geraet bei Glatteis ins Schleudern. Die ganze Ware"
  395.  PRINT "ist beschaedigt worden. Kosten: 20.000 DM"
  396.  besitz(i)=besitz(i)-20000
  397.  END IF
  398.  
  399.  IF x = 9 THEN
  400.     PRINT"Deine Firma kommt durch Exportschwierigkeiten in ein finanzielles"
  401.     PRINT "Dilemma. Um das Finanzloch zu stopfen investierst Du aus Deinem"
  402.     PRINT "Privatvermoegen 50.000 DM."
  403.     besitz(i)=besitz(i)-50000&
  404.  END IF
  405.  
  406.  IF x = 10 THEN
  407.     PRINT " S C H W A R Z E R    F R E I T A G"
  408.     PRINT 
  409.     PRINT " Boersensturz!"
  410.     PRINT " Alle Aktien verlieren die Haelfte ihres urspruenglichen Wertes."
  411.     FOR j= 1 TO 10
  412.     wert(j)=CINT(wert(j)/2)
  413.     NEXT j
  414.  END IF   
  415.     
  416.     
  417.  
  418.  GOSUB WarteTaste
  419.  RETURN   
  420.  
  421.        
  422.